Recently, the Internet has been widely utilized for using some applications. Among others, a business application is conventionally used in a system having a fixed number of terminals. When, however, the Internet is utilized, it is difficult to estimate the number of terminals and the number of requests.
Thus, is desired a technique of increasing the number of computers on which an application is executed depending on, for example, the number of requests, to distribute the load and thus to improve the response to a request and to improve the operation stability.
For example, now is required a technique of holding (pooling) many computers that can be assigned to various applications without fixing relations between applications and the computers executing the applications, in order to assign and activate a required amount of computer resources for a certain application when necessary.
Patent Document 1 (Japanese Non-examined Patent Laid-Open No. 2001-331332) discloses a technique of reserving a certain resource for a real time application system. This technique previously stores, in a database, correspondence between a service level and respective resource amounts of a processor, a memory and a disk bandwidth, and determines and reserves resource amounts assigned to an application based on the resources associated with a requested service level. According to this technique, it is possible to reserve resources easily without designating complex parameters and to prevent a wasteful use of resource amounts occurring from reservation of resource amounts.
In a data center, there is constructed a system in which each of a plurality of applications (for example, Web service programs) is executed on at least one of a plurality of computers, and requests to an application are distributed to and processed by the computer(s) on which that application is executed.
In such a system, computers to which no application is assigned are pooled, and then, one or some of the pooled computers are assigned to an application having many requests to be processed to run the application on the assigned computer(s), increasing a resource amount (i.e., computers) assigned to that application having many requests to be processed.
This arrangement prevents lowering of the service level of that application having many requests to be processed. Here, the service level means a level of service provided from a service provider to a service user, and indicated, for example, by a time elapsing from transmission of a request by a terminal of a service user until a return of a result of the request to the terminal of the service user. The technique described in the above Patent Document 1 can be applied to assignment of resources (computers) to applications in the above-described system. However, the technique described in the above Patent Document 1 does not take the following points into consideration.    (1) The number of requests allowable for a computer of certain specifications varies depending on an application.    (2) All the pooled computers do not have the same specifications.    (3) Sometimes, it is necessary to assign a computer whose specifications are unknown to an application to which that computer should be assigned.
Thus, it is difficult to perform efficient resource assignment (causing neither resource deficiency nor assignment of excessive resources) by applying the technique described in the above Patent Document 1 to assignment of resources (computers) to applications, in a system in which each of a plurality of applications is executed at least one of a plurality of computers and requests to an application are distributed to and processed by computers on which that application is executed.